Лабораторная работа №6
Андрианова Марина Георгиевна
RUDN University, Moscow,
Russian Federation
2024, 10 October
Цель работы
Развить навыки администрирования ОС Linux. Получить
первое практическое знакомство с технологией SELinux.
Проверить работу SELinux на практике совместно с веб-
сервером Apache.
Выполнение лабораторной работы
Вошла в систему под своей учетной записью. Убедилась,
что SELinux работает в режиме enforcing политики targeted с
помощью команд getenforce иsestatus (рис. [-@fig:001]).
Рис.1. Проверка режима работы SELinux
Запускаю сервер apache, далее обращаюсь с помощью
браузера к веб-серверу, запущенному на компьютере, он
работает, что видно из вывода команды service httpd status
(рис. [-@fig:002]).
Рис.2. Проверка работы Apache
С помощью команды ps auxZ | grep httpd нашла веб-сервер Apache в
списке процессов. Его контекст безопасности - httpd_t (рис. [-
@fig:003]).
Рис.3. Контекст безопасности Apache
Рис.4. Типы файлов
В директории /var/www/html нет файлов. ис. [-@fig:004]).
Создать файл может только суперпользователь, поэтому от его
имени создаем файл test.html следующим содержанием:
<html>
<body>test</body>
</html>
(рис. [-@fig:005]).
Рис.5. Создание файла
Рис.6. Контекст файла
Проверяю контекст созданного файла. По умолчанию это
httpd_sys_content_t (рис. [-@fig:006]).
Обращаюсь к файлу через веб-сервер, введя в браузере
адрес http://127.0.0.1/test.html. Файл был успешно отображён
(рис. [-@fig:007]).
Рис.7. Отображение файла
Изменяю контекст файла /var/www/html/test.html сhttpd_sys_content_t на на
samba_share_t,к которому процесс httpd не должен иметь доступа:
chcon -t samba_share_t /var/www/html/test.html
ls -Z /var/www/html/test.html
Контекст действительно поменялся ис. [-@fig:008]).
Рис.8. Изменение контекста
При попытке отображения файла в браузере получаем сообщение
об ошибке ис. [-@fig:009]).
Рис.9. Отображение файла
Чтобы запустить веб-сервер Apache на прослушивание ТСР-
порта 81 (а не 80, как рекомендует IANA и прописано в
/etc/services) открываю файл /etc/httpd/httpd.conf для
изменения (рис. [-@fig:010]).
Рис.10. Изменение файла
Нахожу строчку Listen 80 и заменяю её на Listen 81
(рис. [-@fig:011]).
Рис.11. Изменение порта
Выполняю перезапуск веб-сервера Apache. Произошёл сбой,
потому что порт 80 для локальной сети, а 81 нет (рис. [-
@fig:012]).
Рис.12. Попытка прослушивания другого порта
Просмотрела файл /var/log/httpd/error_log. Запись появилась в файле
error_log (рис. [-@fig:013]).
Рис.13. Проверка лог-файлов
Выполняю команду
semanage port -a -t http_port_t -р tcp 81
После этого проверяю список портов командой
semanage port -l | grep http_port_t
Порт 81 появился в списке (рис. [-@fig:014]).
Рис.15. Перезапуск сервера
Рис.14. Проверка портов
Перезапускаю сервер Apache (рис. [-@fig:015]).
Теперь он работает, ведь мы внесли порт 81 в список портов
http_port_t (рис. [-@fig:016]).
Рис.16. Проверка сервера
Возвращаю в файле /etc/httpd/httpd.conf порт 80, вместо 81.
Проверяю, что порт 81 удален, это правда (рис. [-@fig:017]).
Рис.17. Проверка порта 81
Далее удаляю файл test.html, проверяю, что он удален (рис. [-
@fig:018]).
Рис.18. Удаление файла
Выводы
В ходе выполнения данной лабораторной работы были
развиты навыки администрирования ОС Linux, получено
первое практическое знакомство с технологией SELinux и
проверена работа SELinux на практике совместно с веб-
сервером Apache.